
                    IS THERE LIFE AFTER MEX?
               (being a tale of hope and despair)

                         by P. H. Newman 
                       Wilmette, Illinois

*****************************************************************

8/19/84

             MY SUMMARY TO DATE OF IMPLEMENTING MEX
        (Both MEX10 and MEX11-see 8/24 et seq for latter)

This is a series of notes, observations and comments on my imple-
mentation  of  MEX.   There is no real attempt to order  it.  Can 
clean  it  up later but it is important now to have a  record  of 
what I've learned and done.
   
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
THIS  IS A CHRONOLOGICAL RAMBLE WHICH WILL GIVE ME  SOMETHING  TO 
REVIEW FROM "GENESIS" AND,  PERHAPS,  MIGHT HELP ANOTHER TO AVOID 
SOME  OF MY MISTAKES SO THAT HE MAY HAVE FREE REIN IN  MAKING  AS 
MANY  OF  HIS  OWN OF WHICH HE IS CAPABLE - OR TO  WEND  HIS  WAY 
THROUGH THOSE OF OTHERS.
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

MEX  is  a very interesting program with a number  of  advantages 
over that which I've been using,  MDM740,  - which I like  - with 
only  a  few  features that are not quite so good as  Hoff's  but 
which can, for the most part, be implemented or at least surmoun-
ted.
 
Like all new software development,  especially that in the public 
domain  where everyone can and will get his hand in,  it  suffers 
from  bugs,  poor  documentation and just plain  errors  of  both 
omission and commission.

Since its release in early May there have been a number of offic-
ial,  semi-official  and unofficial fixes and enhancements.  I've 
implemented the official and semi-official ones and one,  so far, 
unofficial  one.   The  "official"  are those of  Fowler  in  his 
MEXNEWS.001-.004.   That in .003 brings the version to 1.00C  and 
includes those in .001 and .002.  The latest as of this date is a 
"POKE" in .004.  He did not change the version definition for the 
latter.   The semi-official one is my use of John Smith's overlay 
for   Kaypros,   MXO-KP27.ASM,   which  I  modified  somewhat  as 
MXONKP27.ASM and used.  The unofficial one I used is MXKPHACK.ASM 
which  cleans up a bug or two and adds a couple of  fine  points.  
I've  done  a couple of things such as change the  <ESC>  (really 
intercept)  character from ^J to <TAB> (^I) for physical ease  of 
use,  but these are minor operational changes of which there will 
be many more as I go down the road.   The important thing at this 
point is to identify and delineate the up-to-date "fixed" version 
of the basic program that I have.

I  spent  a  frustrating two bloody days trying to find  out  the 
source of a problem I had:   being unable to disconnect either in 
COMMAND with DSC or in TERM.  with <ESC> N,  only finally to dis-
cover  that it was an error of ommission in the documentation  by 
Smith of his overlay.   I spent inordinate amounts of time  down-
loading  copies of the programs from other boards thinking  there 
might have been a glitch in that I'd previously gotten.   I found 
one  such  in a copy of MEX-KP.COM,  the first I'd gotten  having 
been defective.   However,  the problem of no disconnect was  not 
solved.

The  original  version of MEX I'd implemented when it  was  first 
released but never used, which I still have as MEX-A.COM, discon-
nected properly.   However, I'd used an MDM7xx overlay and wanted 
to  use the more versatile MXO-KPxx.ASM.  The latter has more SET 
commands  available  although the word  length,  stop  bits,  and 
parity SET features of the MDM7xx were not included.   Pity,  for 
it  would be quite useful in my case for setting up  for  Telexes 
and,  for others,  for mainframe communication.  However, I still 
couldn't  get the disconnects nor would the installed ( to  1.00C 
level and MXO-KP26 overlay) version of MEX-KP.COM I downloaded do 
any better.

It should be noted that there are extant two versions of the MXO-
KP26.ASM:   one is the semi-official one of John Smith, the other 
an  "illegitimate" one by Contorer.   In Smith's ...26 he took to 
task  the author of ...25 who had hacked it in a way not  consis-
tent with Smith's intent.   Therefore,  Smith's ...26 undid ...25 
and  pointed out the requirement with a Hayes Smartmodem  to  set 
switch  #6  to "UP" in order to enable DCD detection.   This  I'd 
done to no avail insofar as being able to disconnect.

In  going  through some of the other writings and  programs  I've 
amassed  in  the voluminous MEX library (I've over 500K  now  and 
still counting) I noted an overlay by Brown Grier wherein he uses 
a  different disconnect procedure than Hayes' "+++,  ATH" because 
primarily, of its greater speed.  (This is "DTR"  disconnection). 
This required placing the Hayes switch #1 also "UP."  This I  did 
and  all  the versions I'd installed with  MXO-KPxx  disconnected 
perfectly in both COMMAND and TERMINAL modes and extremely rapid-
ly,  far faster than MDM740 or other programs I've used.   There-
fore,  if this overlay is used,  MXO-KPxx.ASM, and the modem is a 
Hayes  1200  ( and,  presumably the 300) both switches #1 and  #6 
should be in the UP position.

I've not looked into,  nor am sure I'd recognize,  whether  Smith 
used the same or a similar procedure as Grier and some day, as an 
academic exercise,  I may do so.   However,  at this juncture I'm 
more  interested in pursuing the things for which I'd started all 
this:   to enable me to utilize the inherent programming features 
of MEX in practical applications.   Also,  whether any of this is 
applicable to MXO-.... overlays for other implementations I have-
n't the foggiest for I have neither the need nor the  inclination 
to investigate them.  (I've had my sadistic moments but I'm proud 
to say I've never been a masochist.)

Therefore, the summary of my installation to arrive at 1.00C 
(with the MEXNEWS.004 "POKE" addition) and MXO-KP27 overlay:

Started with MEX-KP.COM although the original MEX10.COM can 
easily be brought to the same level.

Started with:  MEX-KP.COM     "MXLOAD21"'d MXONKP27.HEX
Produced:      MEX-KP27.COM   "MXLOAD21"'d MXKPHACK.HEX
Produced:      MX-KP27H.COM   "POKED" the fix in MEXNEWS.004
"CLONE"d       MX-KP274.COM   I'm about to rename this MEXA for 
ease of use.

One other thing to note:  the MXKPHACK (same, except for address, 
as MEXHACK1),  among other things, further reduces the time delay 
constants from Fowler's correction in MEXNEWS.003.   According to 
him  they  were  wrong by a factor of three but it  was  actually 
more.   After doing this,  installing MXKPHACK,  by checking with 
various  values of n in SET DELAY n,  I found that the timing  is 
now  dead  on.   I've not yet,  however,  timed any  "SLEEPS"  or 
"WCHARS" - if I can figure out how to do the latter.

The above summarizes the start.  I'll add to this file as I 
proceed  - but, first, some general comments:

I don't like the phone library so well as that in MDM740.  In the 
latter  you use a prefix character,  from A thru Z and 1  through 
something.   I  don't  recall,  but there are  30-odd  available.  
Herein,  then,  you can have a fair amount of identifying data in 
the directory yet only need to CAL one character.   In MEX,  how-
ever,  the identifier and the number - with the addition of  baud 
rate,  a very good feature - are all that are there.   Therefore, 
you  either have a long identifier to type in every time you call 
or have a short one and rely on your memory to supply its identi-
ty.   Having a short one of the latter,  I came up with an alter-
nate method which allows me to have my descriptive directory  and 
a single character identifier as well.   I made up what amount to 
a directory that I called PHONE.DAT which has the  minimal infor-
mation  that is in PHONE.PHN but has the other data that describe 
the board or whatever it is for jogging the memory.   With a file 
called PH.MEX which merely is "TYPE PHONE.DAT" and having  EXTEND 
"on" then all one need do is type PH, the more elaborate directo-
ry  appears  and any of its members can be called with a  CAL  or 
DIAL (identifier).

One  other  point:   the  STAT listing with the command  STAT  is 
ridiculous.   If one invokes STAT ?  a listing is produced of all 
of  the  defaults  that can be changed.  Or you can  change  them 
dynamically,  for  a one-shot.   This,  combined with  the  CLONE 
command,  is  one  of the really marvelous features of  MEX.   It 
obviates the tedium of changing the .ASM overlay,  re-assembling, 
etc.  for each whimsical change you wish to make.  The problem is 
that the listing of the STAT setting, invoked by STAT, bears only 
a  passing  resemblance to the commands  themselves  that  appear 
after STAT ?  and which must be precisely called.   Consequently, 
with SUPERZAP I went into this section and made the STAT commands 
the first word of the listing.   Therefore, now when I call it up 
I  can  see at a glance what they are since they have the  proper 
nomenclature.

(ADDED LATER - MEX11 HAS THIS CHANGE)

One  last point:   the major attraction of MEX and the  one  that 
truly  raises it out of the crowd of modem programs is its  "pro-
gramming"  feature,  using the SEND/READOUT commands.   With them 
its  something special,  without them it's merely another  useful 
modem program.  These are the things that have caused my interest 
to  be aroused and which I'll now dive into.   In the  myriad  of 
files  I have are a number of utilizations of these which  should 
give me a pretty good idea of how best to use them.

***************************************************************

8/24/84

Annoyances, annoyances, etc., etc.  No one seems to have gotten 
the SENDOUT routines down correctly for automatic log-in - if 
there is a "correct" way.  I've tried variations of most of the 
examples in the files I've downloaded.  The documentation leaves 
more than a lot to be desired as I do not seem to be the only 
dummy.

(LATER - NOW FOR MEX11)

Last night I found on Mark Stein's board MEX11.LBR, which I 
downloaded. This is Fowler's 1.10.  I "MLOAD21"'d MXOKPN27.HEX 
onto MEX11.COM and produced MEXC.COM.  We shall see.....

Incidentally, I checked MXLOAD21.COM against MLOAD21.COM received 
in MEX11.LBR and found they are identical.  Therefore, I renamed 
MXLOAD21.COM to MLOAD21.COM.

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

BIG NOTE:

See MEX11UPD.DOC,  p. 4.  Apparently MXONKP27.ASM is too large to 
fit  in  the new,  smaller overlay area because it  combines  the 
physical and Smartmodem overlays.   After producing the COM  file 
noted  above it would not dial.   Tried the same overlay  on  the 
original MEX10.COM and worked ok insofar as dialing.  

Tried Brown Grier's MSOKP26 with MXO-SM13 and OK.  Use it for now 
but watch for the new ones.  Grier's does not have any of the SET 
commands except BAUD and it's going to be a pain to shut off  and 
turn  on the speaker.   I suppose I can program function keys for 
this as I've been doing.   Anyway,  this seems the way to go now.  
Note that the MXO-SM13 must have DISC = FALSE for the DTR discon-
nect  to  work  properly.   Made  one  with  this  change  called 
MXONSM13.ASM.

Named the COM file MEXD.COM.  **** SEE 8/25 CHANGES ****

However,  neither does PHONE show the baud rates for the  entries 
when they are displayed nor does 300 get set for any for which it 
is  specified.   This  apparently  has  to be  supported  in  the 
logical(Smartmodem) overlay and MXO-SM13 does not do so.

Also,  whenever  the  screen is cleared,  by CLS  or  READing  in 
PHONE.DAT, for example, get three NULL characters (backward apos-
trophes)  which push whatever else is on the line three places to 
the  right.   In Grier's MSOKP20,  in the module that clears  the 
screen and identifies the Kaypro version - on p.  10 of my print-
out,  are three NULLS after the CLEOS and CLS code which are  the 
culprits.   I removed them and everything seems to work OK.  How-
ever,on  p.  6 Grier says that the full nine bytes must be  used, 
padded  with  NULLS if necessary.   He gives no explanation so  I 
would assume, if he is correct, that my removing them may cause a 
problem  that I did not encounter in my brief check after  taking 
them  out.   (I  caLLed this version MEXX.COM  and  the  modified 
overlay MSOXKP20.ASM).  **** THESE ELIMINATED - SEE 8/25 ****

The  upshot  is  that  using these two overlays  is  not  a  very 
satisfactory  interim solution until I can get more comprehensive 
overlays.   Don't  have the SET commands that I want,  won't  set 
baud  rate automatically for those boards that use 300 - and  the 
return  to 1200,  and either get the NULL garbage lousing up  the 
screen  if  I  leave them in the clear-screen  functions  or  can 
expect to have problems if I remove them.  NUTS!

*****************************************************************

8/25/84

After  a  long "chat" with John Sojak I decided to go ahead  with 
the *KP20 and *SM13 overlays but remove the NULLs in the *20  and 
see  if it really creates a problem.   Therefore,  I modified  my 
MSONKP20.ASM,  assembled,  and MLOAD21'd a new MEXD.COM.   Then I 
did the various STAT changes I want.  Again, we'll see...

HOWEVER,   IT  IS  DOUBTFUL  WHETHER  THE  ORIGINAL  PROBLEMS  OF 
PROGRAMMED LOG-ON WILL BE SOLVED.   I'm greatly disappointed that 
Fowler  did not make this the thrust of his new version  - having 
it  be  cleaned  up,  to  be sure,  but  mainly  amplify  on  the 
READ/SENDOUT  and  related  procedures,  for these are  the  true 
raison d'etre of the program.  Without them it is merely  another 
useful  modem  program and,  in some respects - particularly  the 
ease of dialing - not so good as MDM740.

*****************************************************************

8/27/84

The  other  night  John Sojak showed me a copy of  his  directory 
download of Fort Fone File Folder, Fowler's "home" port, operated 
by  an Al Jewer.   On it was a file MXO-KP30.AQM.   I  called  up 
there and downloaded it.   It is an adaptation of the *25 version 
that got the original author, Smith, so upset.  However, this one 
has stop,  parity,  etc. implemented in SET, but it does not have 
DTR  disconnect.   But no big deal;  three seconds with the Hayes 
procedure  vs.  one second with DTR?   From its length I  doubted 
whether it would work with *11 - and it did not.   But this was a 
new wrinkle.   It did not hang up,  requiring a cold boot as  did 
some of the earlier failures with *27,  etc.   Now it ran through 
and gave me a warm boot. 

John  Sojak  told me that the MEXD that I gave him did  not  work 
with  his Kaypro II and he seemed not to understand why any  more 
than do I.  It continues to work with no apparent problem with my 
4,  yet there should be no difference,  so far as I know, between 
the two, mine being the "old," circa November,'83, model.

8/28/84

"Talked"  to Mark Stein.   He's completely soured on *11 although 
he still believes *10 is usable - thinks *11 is full of bugs.

Decided  to see how I'd like MXO-KP30 with *10 and  went  through 
the  same procedure as I did to produce MEXB:   from MEX-KP  with 
MXO-KP3  overlaid and the fix in MEXNEWS "POKED" into  it.   This 
I've called MEXF.  Works OK.

8/29/84

Saw that John Sojak had gotten MXO-KP28 .  Talked to him about it 
and  he  overlaid it on *11 and gave it to me.   I  thought  we'd 
found the Grail,  for no hang,  no warm boot,  came up fine - and 
proceeded  to  do something weird.   I found that I could type  a 
number in, e.g CAL 123-4567, and it would put the modem off-hook, 
dial and everything great.   Then loaded PHONE.PHN and tried  CAL 
(name) and zap:  the modem wouldn't go off-hook, no dial tone, no 
tone output to the modem ; the screen says it's dialing merrily - 
but  nothing.   Then  the weird part:   I then could not  type  a 
number and have it dial.  If I turned the modem off and then back 
on to set to its defaults and tried again, still no go.  But if I 
exited  from TESTMEX (the name we'd used) and called it up  again 
it initialized the modem properly and we were back where we  were 
to begin with.  I went to bed.

8/30/84

Still  puzzled  I  rather whimsically took TESTMEX  and  overlaid 
MX11HK12 over it.   This is a Bob Schultz hack to correct some of 
the  bugs he'd found such as no baud rate showing  in  PHONE.PHN, 
allows getting rid of the prompt when entering terminal mode, and 
same  for showing clone level,  and fixes the released  version's 
feature  of  setting the high order bit on the last digit of  the 
displayed baud rate.   But would these solve my problem?  No way, 
you  say?   Wrong!   Now  it works just fine - dials just  as  it 
should, etc.,etc.

But  there's more to this than meets my untutored eye.   IF   THE 
FUNDAMENTAL PROBLEM IS AS  FOWLER SAYS:  THAT THERE IS NOT ENOUGH 
OVERLAY SPLACE FOR THE "HUGE" OVERLAYS SUCH AS MXO-KPXX WHY  DOES 
IT WORK NOW FOR ME???  I'll leave that to some more knowledgeable 
than  am I - and there's a whole world out there that meets  that 
criterion.

Incidentally, I've called the one produced as above TESTMEXX.COM.

Rich  Trenkamp tried my MEXD on his Kaypro 10 and everything  was 
fine,  dialed,  etc.,  etc.  but  when he exited with any of  the 
commands,  EXIT,  BYE,  CPM, everything went off into space.  Now 
that one has bombed on the Kaypro 2, for John Sojak, and the K10.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

NOW MEX111 REARS ITS HEAD

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Found  MEX111.COM  on  Mark Pulver's board and extracted  it  and 
MX111UPD.DOC from the LBR.   And so to bed.  What will the morrow 
bring?

****************************************************************

8/31/84

Using  MLOAD21 I installed MEX111.COM with MXO-KP28,  calling the 
result  MX11128.COM.   I  did  the  same  with   MXO-KP30,   with 
MX11130.COM  as the result.   Both of these,  of course,  are the 
large overlays and should not work.   Right?   Wrong;  they  work 
just fine.

I  now have four versions of MEX11x.COM that work on my  K4.   At 
least one does not work at all on the K2 and is unsatisfactory on 
the K10.   I'll pass the other ones on to others and see how they 
are  on the other Kaypros.   In the meantime,  however,  it looks 
like  I can now do what I started out to do in the  first  place:  
use one of the the darned programs.   With a little examination I 
should quickly be able to decide which of the latest - the ones I 
think I'll choose - is the better.  And away we go.....

(I've  just  done some cataloging and find I've better  than  1.2 
MEGs of MEX files.  And I thought I was wordy.)
